package Project.InterfacePolymorphic;

public class DemoMain {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.powerOn();

        //准备一个鼠标，供电脑使用   (这里就是多态写法)
        USB usbMouse = new Mouse();

        //参数是USB类型，我正好传进去的是usb鼠标
        computer.useDevice(usbMouse);

        //创建usb键盘，这里没有使用多态写法    (即先向上转型)
        KeyBoard keyBoard = new KeyBoard();
        /*
        这里没有使用多态写法，
        而useDevice需要的是USB类型，而传递进去的是实现类对象
        这里为甚直接使用keyBoard也是正确的呢？
        因为这里也发生了自动向上转型
        */
        computer.useDevice(keyBoard); //这里是自动转型
        //computer.useDevice(new KeyBoard());


        computer.powerOff();


        //下面是举例
        System.out.println("=========下面是举例============");
        method(10.0);
        method(10);  //int -->  double
        int a =30;
        method(a);

    }

    public static void method(double num){
        System.out.println(num);
    }
}
